package cn.csust.net2.manager.shared.service;

import java.util.List;

import cn.csust.net2.manager.shared.po.PO;

import com.extjs.gxt.ui.client.data.FilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface BeanServiceAsync<T extends cn.csust.net2.manager.shared.po.PO> {

	void delete(String cla,T t, AsyncCallback<Void> callback);

	void findAllByPaging(String cla,PagingLoadConfig config,
			AsyncCallback<PagingLoadResult<T>> callback);

	void save(String cla,T t, AsyncCallback<Void> callback);

	void update(String cla,T t, AsyncCallback<Void> callback);

	void findAll(String cla, AsyncCallback<List<T>> callback);

	void findByExample(String cla, PO t, AsyncCallback<List<T>> callback);

	void findByPaging(String cla, PO t, PagingLoadConfig config,
			AsyncCallback<PagingLoadResult<T>> callback);

	void counts(String cla,PO t, AsyncCallback<Long> callback);

	void findByUniqueExample(String cla, PO t, AsyncCallback<PO> callback);

	void save(String cla, List<T> list, AsyncCallback<Void> callback);

	void update(String cla, List<T> list, AsyncCallback<Void> callback);

	void delete(String cla, List<T> list, AsyncCallback<Void> callback);

	void findAllByPaging(String cla, FilterPagingLoadConfig config,
			AsyncCallback<PagingLoadResult<T>> callback);

}
